/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufjf.pos.model.dao;

import br.ufjf.pos.model.HorarioTrabalho;
import br.ufjf.pos.util.GenericDao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author cleber
 */
public class HorarioTrabalhoDAO  extends GenericDao<HorarioTrabalho, Integer>{

    @Override
    public void inserir(HorarioTrabalho obj) throws SQLException, ClassNotFoundException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void alterar(HorarioTrabalho obj) throws SQLException, ClassNotFoundException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void apagar(HorarioTrabalho obj) throws SQLException, ClassNotFoundException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public HorarioTrabalho pesquisaChave(Integer obj) throws SQLException, ClassNotFoundException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public ArrayList<HorarioTrabalho> buscarTodos() throws SQLException, ClassNotFoundException {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    
    public ArrayList<HorarioTrabalho> listarHorariosDentista(Integer obj) throws SQLException, ClassNotFoundException {
        String sql = "  SELECT TBhorario_trabalho.DFdescricao, TBhorario_trabalho.DFhora_inicial, TBhorario_trabalho.DFhora_almoco_inicial, TBhorario_trabalho.DFhora_almoco_final, TBhorario_trabalho.DFhora_final  "
                      + " FROM TBhorario_trabalho "
                + " INNER JOIN TBfuncionario "
                        + " ON TBfuncionario.DFid_horario_trabalho = TBhorario_trabalho.DFid_horario_trabalho  "
                     + " WHERE TBfuncionario.dfid_funcionario = ? ";
        ArrayList<String> lista = new ArrayList<String>();
        lista.add(obj.toString());
        
        ArrayList<HorarioTrabalho> listaHorario = new ArrayList<HorarioTrabalho>();
        
        ResultSet rs = executasql(sql, lista);
        while(rs.next()){  
            HorarioTrabalho horario = new HorarioTrabalho(rs.getString("DFdescricao"), 
                                                          rs.getDate("DFhora_inicial"), 
                                                          rs.getDate("DFhora_almoco_inicial"), 
                                                          rs.getDate("DFhora_almoco_final"), 
                                                          rs.getDate("DFhora_final"));
            listaHorario.add(horario);            
        }   
        return listaHorario;
    }   
    
    public boolean isHorarioDentista(int idFuncionario, String hora) throws SQLException, ClassNotFoundException {
        String sql = "  SELECT *  "
                      + " FROM TBhorario_trabalho "
                + " INNER JOIN TBfuncionario "
                        + " ON TBfuncionario.DFid_horario_trabalho = TBhorario_trabalho.DFid_horario_trabalho  "
                     + " WHERE TBfuncionario.dfid_funcionario = ? "
                       + " AND (      ( ? >= DFhora_inicial AND ? < DFhora_almoco_inicial ) "
                       + "         OR ( ? >= DFhora_almoco_final AND ? < DFhora_final ) "
                            + " )";
        ArrayList<String> lista = new ArrayList<String>();
        lista.add(idFuncionario+"");
        lista.add(hora+"");
        lista.add(hora+"");
        lista.add(hora+"");
        lista.add(hora+"");


        ResultSet rs = executasql(sql, lista);
        if(rs.next()){                                
            return true;
        } else {
            return false;
        }   
    }
    
    
}
